There are a significant number of wireless technologies in the marketplace today. One standard for short range wireless technology is called Bluetooth. Bluetooth is a Radio Frequency (RF) specification for short-range, point-to-multipoint voice and data transfer. Bluetooth can transmit through solid, non-metal objects and its nominal link range is from 10 cm to 10 m, but can be extended to 100 m by increasing the transmit power. It is based on a low-cost, short-range radio link, and facilitates ad hoc connections for stationary and mobile communication environments.
The Bluetooth wireless technology allows users to make connections between communication devices such as mobile phones and desktop and notebook computers. Finding and making use of services in these environments is becoming increasingly important due to the continued growth in wireless technologies as seen by the proliferation of mobile computing devices and also due to the merging of wireless technologies and computer technologies. These services can include basic services such as printing, faxing, paging, etc., more complex services such as video conferencing and teleconferencing, and any other type of service that a service provider may provide.
Bluetooth utilizes a Host Controller Interface (HCI) that provides mechanisms to determine the capabilities (i.e., services) that Bluetooth devices can provide. The HCI has a mechanism called Inquiry to determine which Bluetooth devices are in range. When a Bluetooth device runs an Inquiry, Bluetooth devices within range respond and the requesting device receives one or more Inquiry Result events. Each Inquiry Result contains a list that includes the MAC (Media Access Control) address (i.e., the Bluetooth Device address BD_ADDR) class of device, and other information about each Bluetooth device that responded to the Inquiry. The requesting device is limited in what can be done with the information because the information merely indicates what a device's abilities are (e.g., cell phone, cordless phone, laptop, desktop workstation, etc.). Without further information, it is difficult to distinguish one Bluetooth device from another Bluetooth device.
To overcome this difficulty, the Bluetooth specification provides for user friendly names (e.g., Joe's cellphone, printer in Room 210, etc.) to enable the user to distinguish between devices. A user must request each Bluetooth device for its friendly name using the Remote Name Request command. The result of a Remote Name Request is a friendly name field, which is a UTF-8 (Uniform Transformation Format) encoded descriptive name of a Bluetooth device. The length of friendly name field is 248 bytes long and if the friendly name is shorter than 248 bytes, the end of the friendly name is indicated by a null character. Multiple retries may be required for a Remote Name Request command to succeed. As a result, the total time it takes to find the friendly names of devices in a Bluetooth rich environment can take several minutes.